![]() |
|
|
rtk 20092009.1.1 - zamenjaj vrsticeKolikokrat najmanjši 1. podnalogaNalogaNapisana je funkcija
Vhodni podatkitekstovna datoteka
Izhodni podatkiinteger Uradna rešitevdef kolikokratNajmanjsi(datoteka):
'''prebere datoteko in izpiše število pojavitev najmenjšega števila v zaporedju'''
dat = open(datoteka, 'r', encoding='utf-8').readlines()
zaporedje = []
for vrstica in dat[1:]:
zaporedje.append(int(vrstica.strip('\n')))
minSt = min(zaporedje)
return sum(1 for x in zaporedje if x == minSt)
2009.1.2 - zamenjaj vrstice2009.1.3 - zamenjaj vrsticeCitiranje 1. podnalogaRecimo, da bi radi citirali razne strani iz neke knjige; to naredimo tako, da naštejemo številke teh strani v strogo naraščajočem vrstnem redu, na primer 2, 5, 6, 8, 11, 28, 29, 30, 31, 67. Če se v tem seznamu kdaj pojavita dve ali več zaporednih strani, ga lahko zapišemo krajše: obdržimo le prvo in zadnjo številko strani iz take skupine več zaporednih številk, med njiju pa zapišimo vezaj: 2, 5–6, 8, 11, 28–31, 67. NalogaNapisana je funkcija funkcijo
Vhodni podatkiSeznam integerjev s številkami strani
V seznamu so številke strani že podane v naraščajočem vrstnem redu, vse pa so cela števila, večja od 0. Predpostaviš lahko, da je v vhodnem seznamu vsaj ena številka in da se nobena številka v njem ne pojavi več kot enkrat. Izhodni podatkiSeznam nizov s strnjenimi zaporednimi stranmi.
Uradna rešitevdef citiraj(sezStrani):
'''v seznamu skrči zaporedne številke strani npr. 1,2,3,4 v 1-4
in vrne nov seznam'''
sezSkrcen = []
sezStrani.append(0) # dodamo, da ne bo problemov z indeksi
i = 0
while i < len(sezStrani) - 1:
# preverimo naslednjo
if sezStrani[i] == sezStrani[i + 1] - 1:
Od = sezStrani[i]
Do = sezStrani[i + 1]
# preverimo, do kam gre zaporedje
for j in range(i, len(sezStrani) - 1):
if sezStrani[j + 1] == sezStrani[j + 2] - 1:
Do = sezStrani[j + 2]
else:
break
sezSkrcen.append(str(Od) + '-' + str(Do))
i += Do - Od + 1
else:
sezSkrcen.append(str(sezStrani[i]))
i += 1
return sezSkrcen
2009.1.4 - zamenjaj vrstice2009.2.1 - zamenjaj vrsticeMesto objave ob koncu projekta 15.9.2018 |